<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of ActualizarDatos
 *
 * @author MFerreira
 * @export {}Modules
 * @export-metadata RequiredRoles:ROLE_FORBIDDEN
 */
class CompletarInscripcion extends Module {

    public function index() {
        $student = $this->model->students->GetById($this->currentUser->getName());

        $this->assign("student", $student);
        $this->assign("estadosCiviles", array(
            "0" => "Viudo",
            "1" => "Union libre",
            "2" => "Religioso",
            "3" => "Separado",
            "4" => "Divorciado",
            "5" => "Casado",
            "7" => "Soltero",
        ));
        if ($student->getDatosCorreo()->getMunicipio() != null) {
            $municipioContacto = $student->getDatosCorreo()->getMunicipio()->getNombre();
        } else {
            $municipioContacto = "";
        }

        $departamentoNacimiento = trim($student->getLugarNacimiento()->getDepartamento()->getNombre());

        if ($departamentoNacimiento != null) {
            $municipiosNacimiento = $this->model->cities->GetByStateName($departamentoNacimiento, false);
        } else {
            $municipiosNacimiento = array();
        }

        $this->assign("tiposDeSangre", TipoSangre::$nombresGrupos);
        $this->assign("RHs", array("+", "-"));
        $this->assign("action", $this->route->action("Update"));
        $this->assign("departamentos", $this->model->states->GetAll());
        $this->assign("departamentoNacimiento", $departamentoNacimiento);
        $this->assign("municipiosNacimiento", $municipiosNacimiento);
        $this->assign("municipioContacto", $municipioContacto);

        $this->display("index");
    }

    public function Update() {
        $student = new Estudiantes();
        $student = $this->model->students->GetById($this->currentUser->getName());

        if ($this->request->submitted()) {
            $DatosCorreo = &$student->getDatosCorreo();

            $DatosCorreo->setDireccion($this->request->post("Direccion"));
            $student->setFechaNacimiento(dateToJson($this->request->post("FechaNacimiento")));

            $TipoSangre = new TipoSangre();
            $TipoSangre->setGrupoSanguineo($this->request->post("GrupoSanguineo"));
            $TipoSangre->setRH($this->request->post("RH"));

            $student->setTipoSangre($TipoSangre);

            $Municipio = new Municipios();
            $Municipio->setNombre($this->request->post("MunicipioContacto"));
            $Departamento = new Departamentos();
//            $Departamento->setNombre($this->request->post("DepartamentoContacto"));
//
//            $Municipio->setDepartamento(clone $Departamento);

            $DatosCorreo->setMunicipio(clone $Municipio);

            $Municipio->setNombre(trim($this->request->post("MunicipioNacimiento")));

            $Departamento->setNombre(trim($this->request->post("DepartamentoNacimientoNombre")));

            $Municipio->setDepartamento(clone $Departamento);

            $student->setLugarNacimiento(clone $Municipio);

            $DatosCorreo->setTelefono($this->request->post("Telefono"));

            $student->setEmail($this->request->post("Email"));
            $student->setCelular($this->request->post("Celular"));
            $student->setEstadoCivil($this->request->post("EstadoCivil"));

            $Madre = new Personas();
            $DatosLaborales = new DatosLaboral();
            $DatosContacto = new DatosContacto();

            $DatosContacto->setTelefono($this->request->post("TelefonoMadre"));

            $DatosLaborales->setNombreEmpresa($this->request->post("NombreEmpresaMadre"));
            $DatosLaborales->setDatosEmpresa($DatosContacto);

            $Madre->setCelular($this->request->post("CelularMadre"));
            $Madre->setNombre($this->request->post("NombreMadre"));
            $Madre->setTelefono($this->request->post("TelefonoMadre"));
            $Madre->setDatosLaborales($DatosLaborales);
            $Madre->setOcupacion($this->request->post("OcupacionMadre"));

            $student->setDatosMadre($Madre);

            $Padre = new Personas();

            $DatosContacto->setTelefono($this->request->post("TelefonoPadre"));

            $DatosLaborales->setNombreEmpresa($this->request->post("NombreEmpresaPadre"));
            $DatosLaborales->setDatosEmpresa($DatosContacto);

            $Padre->setCelular($this->request->post("CelularPadre"));
            $Padre->setNombre($this->request->post("NombrePadre"));
            $Padre->setTelefono($this->request->post("TelefonoPadre"));
            $Padre->setDatosLaborales($DatosLaborales);

            $Padre->setOcupacion($this->request->post("OcupacionPadre"));

            $student->setDatosPadre($Padre);

            $student->setDireccionPadres($this->request->post("DireccionPadres"));

            $Colegio = new Colegios();
            $Colegio->setCodigoColegio($this->request->post("CodigoColegio"));
            $Colegio->setNombreColegio($this->request->post("NombreColegio"));

            $DatosBachiller = new DatosBachiller();
            $DatosBachiller->setColegio($Colegio);
            $DatosBachiller->setFechaRegistroDiploma($this->request->post("FechaRegistroDiploma"));
            $DatosBachiller->setFolioDiploma($this->request->post("FolioDiploma"));
            $DatosBachiller->setLibroDiploma($this->request->post("LibroDiploma"));

            $student->setDatosBachiller($DatosBachiller);

            $this->model->students->Update($student);
            $this->addMessage(new Message("Sus datos personales han sido actualizados.", "", Message::SUCCESS));
            $this->assign("action", $this->route->action("index"));
            $this->display();
        } else {
            $this->index();
        }
    }

    public function AddInformacionLaboral() {
        $InformacionLaboral = new HistorialLaboral();

        $InformacionLaboralPk = new HistorialLaboralPk();
        $InformacionLaboralPk->setCodigoInterno($this->currentUser->getName());

        $InformacionLaboral->setHistorialLaboralPk($InformacionLaboralPk);

        $InformacionLaboral->setOcupacion($this->request->post("Ocupacion"));
        $InformacionLaboral->setFechaIngreso($this->request->post("FechaIngreso"));
        $InformacionLaboral->setCorrespondencia($this->request->post("Correspondencia"));

        $DatosLaboral = new DatosLaboral();
        $DatosLaboral->setNombreEmpresa($this->request->post("NombreEmpresa"));

        $DatosContacto = new DatosContacto();

        $DatosContacto->setDireccion($this->request->post("Direccion"));
        $DatosContacto->setTelefono($this->request->post("Telefono"));

        $DatosLaboral->setDatosEmpresa($DatosContacto);

        $InformacionLaboral->setDatosLaboral($DatosLaboral);

        $this->model->employment->Create($InformacionLaboral);
    }

    public function EditInformacionLaboral() {
        $InformacionLaboralPk = new HistorialLaboralPk();
        $InformacionLaboralPk->setCodigoInterno($this->currentUser->getName());
        $InformacionLaboralPk->setSecuencia($this->request->post("Secuencia"));

        $InformacionLaboral = $this->model->employment->GetById($InformacionLaboralPk);

        $InformacionLaboral->setOcupacion($this->request->post("Ocupacion"));
        $InformacionLaboral->setFechaIngreso($this->request->post("FechaIngreso"));
        $InformacionLaboral->setCorrespondencia($this->request->post("Correspondencia"));

        $DatosLaboral = new DatosLaboral();
        $DatosLaboral->setNombreEmpresa($this->request->post("NombreEmpresa"));

        $DatosContacto = new DatosContacto();

        $DatosContacto->setDireccion($this->request->post("Direccion"));
        $DatosContacto->setTelefono($this->request->post("Telefono"));

        $DatosLaboral->setDatosEmpresa($DatosContacto);

        $InformacionLaboral->setDatosLaboral($DatosLaboral);

        $this->model->employment->Update($InformacionLaboral);
    }

    public function DeleteInformacionLaboral() {
        $InformacionLaboralPk = new HistorialLaboralPk();
        $InformacionLaboralPk->setCodigoInterno($this->currentUser->getName());
        $InformacionLaboralPk->setSecuencia($this->request->post("Secuencia"));

        $this->model->employment->Delete($InformacionLaboralPk);
    }

    public function GetMunicipio() {
        $Departamento = $this->request->get("CodigoDepartamento");
        echo($this->model->cities->GetByStates($Departamento));
    }

    public function GetDepartamento() {
        $Pais = $this->request->get("CodigoPais");
        echo($this->model->states->GetByPais($Pais));
    }

}

?>
